﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Domain.审计字段;

namespace PersonnelSystemManagement.人事管理
{
    /// <summary>
    /// 人员信息表
    /// </summary>
    public class PersonInfo : ApprovalAuditableEntityBase
    {
        /// <summary>
        /// 主键ID
        /// </summary>
        [Key]
        public int id { get; set; }

        /// <summary>
        /// 姓名
        /// </summary>
        public string? Name { get; set; }

        /// <summary>
        /// 性别
        /// </summary>
        [StringLength(50, ErrorMessage = "性别长度不能超过50个字符")]
        public string? Gender { get; set; }

        /// <summary>
        /// 手机号
        /// </summary>
        [StringLength(50, ErrorMessage = "手机号长度不能超过50个字符")]
        public string? PhoneNumber { get; set; }

        /// <summary>
        /// 院校
        /// </summary>
        [StringLength(100, ErrorMessage = "院校长度不能超过100个字符")]
        public string? School { get; set; }

        /// <summary>
        /// 专业
        /// </summary>
        [StringLength(50, ErrorMessage = "专业长度不能超过50个字符")]
        public string? Major { get; set; }

        /// <summary>
        /// 家庭住址
        /// </summary>
        [StringLength(200, ErrorMessage = "家庭住址长度不能超过200个字符")]
        public string? HomeAddress { get; set; }

        /// <summary>
        /// 学历
        /// </summary>
        [StringLength(50, ErrorMessage = "学历长度不能超过50个字符")]
        public string? Education { get; set; }

        /// <summary>
        /// 政治面貌
        /// </summary>
        [StringLength(50, ErrorMessage = "政治面貌长度不能超过50个字符")]
        public string? PoliticalStatus { get; set; }

        /// <summary>
        /// 民族
        /// </summary>
        [StringLength(50, ErrorMessage = "民族长度不能超过50个字符")]
        public string? Nation { get; set; }

        /// <summary>
        /// 籍贯
        /// </summary>
        [StringLength(100, ErrorMessage = "籍贯长度不能超过100个字符")]
        public string? NativePlace { get; set; }

        /// <summary>
        /// 婚姻状况
        /// </summary>
        [StringLength(50, ErrorMessage = "婚姻状况长度不能超过50个字符")]
        public string? MaritalStatus { get; set; }

        /// <summary>
        /// 出生年月
        /// </summary>
        public DateTime? BirthDate { get; set; }

        /// <summary>
        /// 邮箱
        /// </summary>
        [StringLength(100, ErrorMessage = "邮箱长度不能超过100个字符")]
        [EmailAddress(ErrorMessage = "邮箱格式不正确")]
        public string? Email { get; set; }

        /// <summary>
        /// 身份证号
        /// </summary>
        [StringLength(100, ErrorMessage = "身份证号长度不能超过100个字符")]
        public string? IDCardNumber { get; set; }

        /// <summary>
        /// 部门ID-连接部门表
        /// </summary>
        public int? DepartmentID { get; set; }

        /// <summary>
        /// 职位ID-连接职位表
        /// </summary>
        public int? PositionID { get; set; }

        /// <summary>
        /// 员工类别ID--连接员工类别表
        /// </summary>
        public int? CategoryID { get; set; }
    }
}
